package com.plian.system.controller.fr.internalauditmanagement;

import com.plian.Tools.base.BaseController;
import com.plian.system.config.Resubmit;
import com.plian.system.model.R;
import com.plian.system.model.token.PassToken;
import com.plian.system.service.fr.internalauditmanagement.IamReportService;
import com.plian.system.vo.fr.internalauditmanagement.IamAuditRectifyVO;
import com.plian.system.vo.fr.internalauditmanagement.IamWorkYearAuditProjectVO;
import com.plian.system.vo.report.ReportReturnVO;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 内审报表管理
 *
 * @author jiatp
 * @since 2023-02-21
 */
@Slf4j
@RestController
@AllArgsConstructor
@RequestMapping("api/nsgl/iam_report_mgt")
@Api(value = "内审报表管理", tags = "内审报表管理")
public class IamReportController extends BaseController {

    private final IamReportService reportService;
//
//    /** TODO DEL
//     * 审计整改问题清单汇总
//     *
//     * @param auditRectifyVO
//     * @return
//     */
//    @ApiOperation(value = "审计整改问题清单汇总", notes = "审计整改问题清单汇总")
//    @ApiResponses({
//            @ApiResponse(code = 200, message = "操作成功"),
//            @ApiResponse(code = 1999, message = "服务器错误"),
//    })
//
//
//
//    /**
//     * 覆盖导入 根据填报时间 填报单位覆盖或新增
//     */
//    @PostMapping("/excelCoverImport")
//    @ApiOperation(value = "覆盖导入 根据填报时间 填报单位覆盖或新增")
//    public ObjResult excelCoverImport(@RequestParam("file") MultipartFile multipartFile) throws IOException {
//        String progressId = TokenUtil.getTokenUserId() + "_"+System.currentTimeMillis();
//        CacheUtil.put("progress","progress",progressId + "#half:hour",0);
//        InputStream inputStream = multipartFile.getInputStream();
//        reportService.importExcel(progressId, inputStream);
//        ObjResult objResult = new ObjResult(CommonCode.SUCCESS);
//        PageData pd = new PageData();
//        pd.put("progressId", progressId);
//        objResult.setPageData(pd);
//        return objResult;
//    }
//
//    /**
//     * 导入进度查看
//     */
//    @GetMapping("/progress/{progressId}")
//    @ApiOperation(value = "导入进度查看")
//    public ObjResult progress(@PathVariable String progressId){
//        Object data = CacheUtil.get("progress", "progress", progressId + "#half:hour");
//        if(data != null && data instanceof String){
//            if ("导入成功".equals(data)){
//                ObjResult objResult = new ObjResult(CommonCode.SUCCESS);
//                PageData pd = new PageData();
//                pd.put("data", 200);
//                objResult.setPageData(pd);
//                return objResult;
//            }
//            return new ObjResult(CustomCode.builder().message((String)data).code(1000).success(false).build());
//        }
//        ObjResult objResult = new ObjResult(CommonCode.SUCCESS);
//        PageData pd = new PageData();
//        pd.put("data", data);
//        objResult.setPageData(pd);
//        return objResult;
//    }
//
//    /**
//     * 审计整改导入模版
//     *
//     * @param response
//     * @param os
//     */
//    @GetMapping("/exportTemplateExcel")
//    @PassToken
//    public void exportTemplateExcel(HttpServletResponse response, OutputStream os) {
//        reportService.exportTemplateExcel(response, os);
//    }

    @PostMapping("/rectifyListData")
//    @PassToken
    public R<ReportReturnVO> rectifyListData(@RequestBody IamAuditRectifyVO auditRectifyVO) {
        return reportService.rectifyListData(auditRectifyVO);
    }


    /**
     * 内审项目清单
     * @param auditProjectVO
     * @return
     */
    @PostMapping("/internalAuditProjectData")
    @Resubmit(delaySeconds = 0)
    public  R<ReportReturnVO> internalAuditProjectData(@RequestBody IamWorkYearAuditProjectVO auditProjectVO) {
        return reportService.internalAuditProjectData(auditProjectVO);
    }

}
